package com.lxl.service;

import java.util.List;

import com.lxl.model.Tieba;
import com.lxl.model.User;

/**
 * 用户_用户Service
 * 
 * @author 刘星鹭
 * @Email liuxinglumail@163.com
 * @version 创建时间： 2014年9月9日 下午4:08:47
 */
public interface UserService {
    /**
     * 添加用户
     * 
     * @param user
     *            用户
     */
    public void add(User user);

    /**
     * 删除用户
     * 
     * @param user
     *            用户
     */
    public void delete(User user);

    /**
     * 更新用户
     * 
     * @param user
     *            用户
     */
    public void update(User user);

    /**
     * 通过用户名查找用户
     * 
     * @param userName
     *            用户名
     * @return 用户
     */
    public User find(String userName);

    /**
     * 列出所有用户
     * 
     * @return 所有用户
     */
    public List<User> list();

    /**
     * 列出当前页面10个用户
     * 
     * @param start
     *            页面号
     * @return 当前页面10个用户
     */
    public List<User> listTen(int start);

    /**
     * 计算总页数
     * 
     * @return 总页数
     */
    public int pageCount();

    /**
     * 通过用户名列出该用户所有关注贴吧
     * 
     * @param userName
     *            用户名
     * @return 该用户所有关注贴吧
     */
    public List<Tieba> listTiebas(String userName);

    /**
     * 通过用户名列出该用户所有帖子号
     * 
     * @param userName
     *            用户名
     * @return 该用户所有帖子号
     */
    public List<String> listPostNos(String userName);

    /**
     * 为某用户添加喜欢的贴吧
     * 
     * @param user
     *            某用户
     * @param tieba
     *            喜欢的贴吧
     */
    public void addFavourateTieba(User user, Tieba tieba);

    /**
     * 为某用户删除喜欢的贴吧
     * 
     * @param user
     *            某用户
     * @param tieba
     *            喜欢的贴吧
     */
    public void deleteFavourateTieba(User user, Tieba tieba);

    /**
     * 获得某用户未关注的贴吧列表
     * 
     * @param user
     *            某用户
     * @return 未关注的贴吧列表
     */
    public List<String> getUnFavouratedTiebaName(User user);
}
